Data transmission management for computer based inter-user communication

ABSTRACT

Methods and systems for inter-user communication that can provide data transmission management for more efficient communications are disclosed. The methods and systems can provide enhanced electronic communications, such as via electronic mail or text messaging. Improved communication tools can be provided to better management and/or control communications. The enhanced communication tools can be implemented by electronic devices, namely, computing devices, including portable or handheld electronic devices.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.14/985,295, entitled “DATA TRANSMISSION MANAGEMENT FOR COMPUTER BASEDINTER-USER COMMUNICATION,” and filed on Dec. 30, 2015, and which ishereby incorporated herein by reference, and which in turn claimspriority benefit of: (i) U.S. Provisional Patent Application No.62/099,105, entitled “COMPUTER BASED USER COMMUNICATION,” and filed onDec. 31, 2014, and which is hereby incorporated herein by reference, and(ii) U.S. Provisional Patent Application No. 62/115,309, entitled“MESSAGE COMMUNICATION SYSTEMS AND APPLICATIONS WITH MESSAGE LIFETIMESETTINGS FOR AUTOMATIC MESSAGE DELETION,” and filed on Feb. 12, 2015,and which is hereby incorporated herein by reference.

BACKGROUND

Today, it is popular for people to text message or chat amongst oneanother. Text messages can be sent by various means, such as ShortMessage Service (SMS) or dedicated application programs (e.g., instantmessaging applications). Examples of dedicated application programsinclude Whatsapp, Snapchat, Google Talk, ChatOn, and Facebook Messenger.Also, it is popular for people to also communicate by electronic mail(email), phone or video calls, using mobile telephones or computers.Mobile telephones enable communication by electronic mail, text messagesor voice calls. One example of a VoIP-based phone application is Skype.

As communication options keep expanding, users will necessarily berequired to manage multiple accounts for receiving communications. Insome cases, users are forced to manage multiple accounts to keeppersonal and business communications separate. Although expanding thecommunications options for users is a benefit in terms of expanding theuser's communication reach, users are currently challenged to keep upwith the volume and intensity of received messages. This challenge is inpart due to the vast amounts of social and work related demands on auser's time.

There remains a need for improved approaches to enable users to moreefficiently manage communications, such as responses to communicationrequests, between one or more communication modes.

SUMMARY

The invention pertains to methods and systems for inter-usercommunication that can provide data transmission management for moreefficient communications. The methods and systems can provide enhancedelectronic communications, such as via electronic mail or textmessaging. Improved communication tools are provided to bettermanagement and/or control communications. The enhanced communicationtools can be implemented by electronic devices, namely, computingdevices, including portable or handheld electronic devices.

The invention may be implemented in numerous ways, including, but notlimited to, as a method, system, device, or apparatus (includingcomputer program code). Several embodiments of the invention arediscussed below. As a computer-implemented method for limiting textmessages, one embodiment can, for example, include at least: receivingan electronic message from a given sender over a wireless network;determining whether the electronic message should be deferred; anddeferring delivery to or presentation by a recipient user electronicdevice if the determining determines that the electronic message shouldbe deferred.

As a computer-implemented method for limiting text messages, oneembodiment can, for example, include at least: receiving an electronicmessage from a given sender; determining whether sending or delivery ofthe electronic message should be deferred; and deferring sending ordelivery to a recipient user electronic device if the determiningdetermines that the electronic message should be deferred.

As a computer readable medium including at least computer program codefor limiting text messages, one embodiment can, for example, include atleast: computer program code for receiving an electronic message from agiven sender; computer program code for determining whether sending ordelivery of the electronic message should be deferred; and computerprogram code for deferring sending or delivery to a recipient userelectronic device if the determining determines that the electronicmessage should be deferred.

As a system for providing throttling of messages, one embodiment can,for example, include at least: a sender processing module that receivesa plurality of electronic messages from a sender to a recipient; asummary module that detects a series of incoming messages for therecipient, and condenses the series of incoming messages to create asummary message; and a recipient processing module that initiatesdelivery of the summary message to the recipient were the summarymessage is presented in place of the series of incoming messages.

Other aspects and advantages of the invention will become apparent fromthe following detailed description taken in conjunction with theaccompanying drawings which illustrate, by way of example, theprinciples of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be readily understood by the following detaileddescription in conjunction with the accompanying drawings, wherein likereference numerals designate like structural elements, and in which:

FIG. 1 is a system diagram of an inter-user communication system thatexchanges messages (i.e., electronic messages) between users accordingto one embodiment.

FIG. 2 is a flow diagram of a throttle process according to oneembodiment.

FIG. 3 is a flow diagram of a throttle activation process according toone embodiment.

FIGS. 4A and 4B are flow diagrams of a summary message process accordingto one embodiment.

FIG. 5A illustrates a system diagram of an email server that is incommunication with a client device over a network, according to oneembodiment.

FIG. 5B illustrates an example of a text processing server.

FIG. 6 is an example system diagram of the throttle service module shownin FIG. 5A.

FIG. 7 illustrates an example flow diagram, showing processing by anumber of systems.

FIG. 8 illustrates an example of a device receiving several textmessages from a sender.

FIG. 9 provides an example of messages being summarized and messagesbeing throttled.

FIG. 10 is a block diagram illustrating an example of a summary featurebeing applicable to tweets received over a period of time or forsummarizing a subset identified by the user.

FIG. 11 illustrates an example of a sender processing module receivingdata or pulling data from various sources so that throttling can beapplied.

FIG. 12 shows an exemplary computer system.

DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION

The invention pertains to methods and systems for inter-usercommunication that can provide data transmission management for moreefficient communications. The methods and systems can provide enhancedelectronic communications, such as via electronic mail or textmessaging. Improved communication tools can be provided to better manageand/or control communications.

The various aspects, features, embodiments or implementations of theinvention described herein can be used alone or in various combinations.

Embodiments of various aspects of the invention are discussed below withreference to figures. However, those skilled in the art will readilyappreciate that the detailed description given herein with respect tothese figures is for explanatory purposes as the invention extendsbeyond these limited embodiments.

One aspect of one or more embodiments of the invention pertains to athrottling action that can control communications.

A throttle serves as a way to limit or compact communications withrespect to one or more users. The communications can, for example, betext messages, e-mail messages, or telephone calls. The throttle canlimit communications in any of a variety of different ways. For example,one type of throttle can impose a limit on the number of messages perunit time. Another type of throttle can impose a size limit on messages.Another type of throttle can impose limitations dependent upon the timeof day or location of recipient and/or sender of messages. Another typeof throttle can be dependent on status of either sender or recipient.Still another type of throttle can be based on the social connectionstatus of the sender with respect to the recipient (e.g., friends,important friend, less important friend, a friend of a friend, etc.).Further, types of throttles can be set by a user, e.g., such as byselecting an action to take with respect to a sender of a message,and/or setting rules for actions to take with respect to messagesreceived from a particular sender or senders. In some embodiments, therules can process or depend on one or more conditions that can directwhen particular actions to impose throttle actions are to be applied.The conditions can be temporal (e.g., different actions for differenttimes of day and/or days of the week), or based on a number of messagesreceived, or based on the context of the message itself (e.g., urgencyexpressed by the sender in the message data), or based on relationshipstatus of the sender to the receiving user, or combinations thereof. Inone embodiment, throttle(s) that implement the rules and process theconditions can be set by the user via a user interface provided by acommunications application. The processing of logic to implement theconditions can be executed by a processor of the device executing theapplication and rendering the user interface, or can be executed by oneor more servers that provide cloud processing for communicationsapplications, or by hybrid processing that includes processingoperations on the device of the user and also processing operations on aserver, e.g., via an application (app) having access to the Internet.Any of these different types of throttles can be used separately or inany combinations.

As one example, in the case of a recipient user and the sender user bothbeing at their workplace, while sending messages, the communicationapplications being utilized by the sender and recipient can impose athrottle such that the sender and recipient users (which might modifytheir behavior) are managed to limit communications while at work(though such restrictions could be relaxed if, on break or lunch).

One example of a throttle is a limit type throttle in which the numberof messages in a given amount of time is limited. For example, a limittype throttle might impose a limit of one text message per every five(5) minutes. The sender attempting to send a message, in violation ofthe limit type throttle, could be provided with a notification. Thenotification can notify the sender that the text message they areattempting to send is in violation of the limit type throttle and thuswill not be sent or will be sent after the imposed throttle expires oris removed. That is, the limit type throttle can be configured to“bounce” or “defer sending” of a message being throttled. In anotherexample, the throttle may act to generate a notification to the sender,indicating that the message was received, but will not be presented tothe recipient until a later point in time. For instance, if a sendersends more than two (2) text messages within a period time, e.g., 5minutes, and the recipient does not reply to either text message, thethrottle can notify the sender that any additional messages will becollected and queued, and not shown or presented to the recipient untila period time passes, e.g., 15 minutes, 30 minutes, an hour, two hours,or some user configurable period to time. In this manner, if the senderdeemed too active in sending messages to the recipient, a throttle canbe imposed on the sender. The recipient who knows this user is tooactive, can customized a throttle for that sender. This throttle can actto automatically send the sender a message, e.g., text, pre-recordedvoice call or message, or text, noting that their first two messageswere received, and their subsequent messages within a predeterminedperiod of time, e.g., hour, will be queued and not presented to therecipient during that predetermined period of time. This throttletherefore acts to proactively encourage the active message sender tostop sending messages during the next hour or send less texts in thefuture, as they know they will be limited to two text messages. As notedabove, throttle times and number of messages can be customized fordifferent users.

In another embodiment, a method can be processed to examine a history ofmessages received from a user's contacts, which will enable the systemto generate throttles or recommended throttles for the examined usercontacts. In this examination, users that send frequent texts messages,frequent phone calls, etc., can be identified, and based on theirhistorical contact patterns, the system can implement or recommendthrottles for each user. In one embodiment, the system can group usersinto categories, e.g., based on their historical messaging activity andbased on their relationship to the user and/or based on their socialstatus or importance. For instance, if an active messaging sender is thewife of the recipient, the recommended throttle may be relaxed to allowmore messages to come in and be delivered to the recipient. If theactive messaging sender is an advertiser or commercial entity, thosemessages may be throttled more aggressively. If the active messagingsender is work partner, the system may recommend a medium levelthrottle.

In still other embodiments, a throttle may be moderated based on thecontent of the message, e.g., such as by reading the text message andidentifying context (or converting voicemails to text to identifycontext). Generally speaking, context may define what the messagerelates to by analyzing key words and/or strings of words. In somecases, context may be determined by analyzing multiple messages overperiod of time, e.g., to determine if a conversation is ongoing. Inother embodiments, the determined context may automatically suggest tothe user to change the throttle of the message or groups of messages,e.g., while a conversation is ongoing or the conversation relates to atopic that may be important or of relative importance to the recipientuser.

In still other embodiments, a throttle being imposed can be overridden.For example, use of a code word or expression of urgency might wholly orpartially override a throttle.

As another example, a throttle can be a time of day type throttle inwhich messages are limited or blocked/prevented based on the time of dayat which a message is attempted to be sent. One attempting to send amessage in violation of the time of day type throttle can be providedwith the notification that the message is not permitted to be sent orwill be deferred until sending is permitted.

In one embodiment, a time of day can be compared to a calendar of therecipient. If the calendar indicates that the recipient is currently ina meeting, is on vacation, is working out, is traveling, etc., thesystem may use this information to customize a notification response toa throttle. In some embodiments, to some senders, the system willprovide more detail obtained from the calendar, e.g., the type ofmeeting the user is currently tied up in and/or the people with whichthe recipient is meeting with, and/or other contextual information. Forinstance, if the sender is the sender's wife, the details can be moredetailed and/or informative based on calendar data. If the sender isjust an acquaintance or a person not currently in the recipient'scontact list, the response notification can be more generic. In additionor alternatively to a calendar, in one embodiment, the recipient statuscan be predicted such as by location, by social media postings (e.g.,check-in”), and the like.

In one embodiment, a throttle can be imposed, and/or elevated toincreased throttling, in a “vacation mode.” A recipient status can thusbe denoted (e.g., manually by a user or automatically with reference toa calendar) as “on vacation” or the like, and such can triggeractivation of a throttle or enhancing a throttle already imposed.

In some embodiments, in addition to or alternative to examining acalendar of the user, other digital sources of the user can be accessed.These digital sources can include the user's contact list, the use'sonline contacts, the user's friends lists from social networks, dataobtained from a social network (e.g., such as the frequency ofcontact/messaging with the sender of the message, number of friends incommon, context of communications or postings between the sender andrecipient, number of “likes” posted to each other's social stream,etc.), data obtained from public or private databases, data obtainedfrom a place of work (e.g., based on privilege access), and datagenerated from combining data from one or more of these digital sources.For instance, inferences can be made or validated by comparing theuser's relationship as expressed in these difference digital sources.For example, the recipient's contact data may not have information thatthe sender is the recipient's wife, but from information obtained from asocial network or posts and/or comments, it can deduced with a greatercertainty score that the sender is indeed the recipient's wife. In somecases, the system may generate an inquiry message to the recipientasking “Bill, Is Jane your wife?” Still further, if the sender isidentified to be a marketer (e.g., using caller ID, or by analyzing thecontent of the messages or both), the response can be more strict and tothe point. This information, as noted above, can then be used todetermine or suggest or recommend a throttle to apply to particularsenders.

For purposes of one example, a notification response could display amessage to the sender's device or play a recorded audio (e.g., in therecipient's voice or computer generated). One example message to thesender can be, without limitation: “Bill you have sent too many messagerecently, so your last message won't be delivered for 5 minutes.”

In some embodiments, notification content can be customized by a userahead of time. In other embodiments, notification content can beselected from a pre-defined list of notifications, which may insert therecipient's name (e.g., Bill), so as to appear custom. In otherembodiments, recommended notifications can be suggested to therecipient, for use in regard to a given sender. For instance, if asender sends several messages, and the recipient has not yet assigned athrottle to the sender, the system can suggest particular types of oneor more throttles and/or options of responses for the sender. In otherembodiments, the recipient can choose to send a response message to thesender based on availability in the recipient's calendar or otherdigital source. In still other embodiments, the response message can beautomatically selected based on one or more determining factors, e.g.,the time of day, day of the week, number of messages received, messagesreceived over a period of time, content in the messages, context ofmessage as determined from the message itself, importance of the sender,relationship of the sender to the recipient, and combinations thereof.

In some implementations, the user may provide a weighting as to which ofthe determining factors are more important. In some cases, the user maywish the calendar availability to take priority over the number ofmessages. In other cases, the recipient can set the system to allowunlimited messages when the calendar shows the recipient is available,but when the user is busy (e.g., booked for a meeting), the throttle canbe applied. These options can be set by the user via a user interface ona communications application, or can be set periodically during use orinteraction with incoming messages.

In some cases, the application and/or server can provide to therecipient suggestions on types of throttles to apply to certain senders.For instance, the system can suggest one or more custom replies. Oncethe throttle is set, if the throttle deems that a message will not besent, an appropriate notification message is generated and communicatedto the sender. As noted above, this processing avoids excessdisturbances to the recipient. Additionally, this processing can be by aserver, which can implement the throttling, can operate to avoidprocessing messages and sending communications that are not going to beread or are not desired by the recipient to be read, or would not bewell received for one reason or another.

It is further noted that by not sending messages, or queuing messagesfor future sending as a group reduces computation by servers anddevices. This reduction in computation can have the added technicaleffect of saving power at a server and/or data center resources, e.g.,energy utilized to run a data center, air conditioning systems for thedata center, storage, and the like.

Another example of a throttle is a content type throttle that can limitcertain type or size of content. One type of content type throttle is a“no pictures” throttle. Another type of content type throttle is a “noaudio” throttle. Still another type of content type throttle is a “novideo” throttle. As an example of size of content, the size can bedetermined based on one or more multiple communications. For example, ifthe sender sends a series of messages, and the combined size of thecontent exceeds a threshold, the content type throttle can be applied.Another throttle can be to limit duration of audio or video content ofmessages.

Another example of a throttle is a workplace throttle. The work placethrottle can operate to prevent, limit or defer communications, such asmessaging, while a sender and/or recipient are at work. Thedetermination of whether a user is at work can be based on a location ofthe user or can be based on a normal work schedule or based on a usersetting that they are at work. One example method for identifyinglocation of the sender and/or the recipient may be by examining theglobal positioning system (GPS) data of one or both devices involved inthe communication. If the device is not a wireless device, InternetProtocol (IP) addresses associated with machines sending or receivingmessages may be examined. In other embodiments, the content of thecommunications can examined to identify conversation data thatidentifies a place and/or location.

Another example of a throttle is a driving throttle. The drivingthrottle can operate automatically to prevent or defer communicationswhile the sender or recipient are considered in a motor vehicle or, moreparticularly, driving a motor vehicle. Various techniques and/or devicescan be used to determine when the driving throttle should be imposed,such as an accelerometer, location detector, etc.

A graphical user interface can be utilized to assist the user in settingor resetting a throttle. A throttle can be implemented to be applicableto all incoming messages or applicable to only incoming messages fromcertain users. The throttle can be set to be generally applicable, orcan be set in accordance with a preference setting and thereafterutilized. These preference settings can be turned on and off and/oroverwritten with other user selections, if desired. Additionally oralternatively, in the context of a messaging user interface, such aschat or text, messaging interface, user controls can be provided toenable a recipient user to easily impose a throttle on a specific senderuser.

As mentioned above, the types of throttles can also be suggested to arecipient, based on the identity of a sender. As used herein, a throttlebroadly defines what action to take in regard to a message orcommunication. The action taken includes, for example, whether to sendand/or deliver a message to a recipient when originating from aparticular sender and a particular time, or based on some limit oncommunications, or combinations of factors discussed in more detailabove. The action taken can also be viewed to include a notificationprovided to the sender, e.g., notifying the sender of the action thatwill be taken in regard to their sent message or messages. As seen fromthe recipient, once a throttle is in place and active, there will becases where messages are not received until some later point in time,and when received, maybe a group of messages are delivered at the sametime. In some case, the recipient may never receive a message, if thesender is blocked and notified or just blocked. In some cases, somemessages are received, e.g., one or more, and then subsequent ones areheld or blocked. Further, setting the preferences can be dynamic, e.g.,via the message stream or message listing. For instance, if the user isviewing messages in an inbox, an action tag can be applied (e.g.,displayed) next to the message or messages to define the throttle to beapplied (or available to be applied) for the sender. Further, the typesof throttles to apply for particular senders can be customized, e.g., bythe user or by the system based on the analysis described above.

Accordingly, setting a throttle based on a preference setting can becomputer-implemented such that if the conditions associated with thepreference setting are met, then the corresponding throttle can beautomatically imposed. For example, a user deemed to be driving can havethe driving throttle imposed on their communications. As anotherexample, if a sender user has sent “too many” messages in a short amountof time, then a throttle can be automatically imposed. For example, thepreference setting might be a limit (e.g., threshold) of (i) 2 messagesin 5 minutes, (ii) more than two messages, or (iii) collective messagesexceed x-bytes, etc. As another example, for a workplace throttle, thethrottle can impose a limit of 5 messages per hour during working hours,unless on break.

FIG. 1 is a system diagram of an inter-user communication system 100that exchanges messages (i.e., electronic messages) between usersaccording to one embodiment. The inter-user communication system 100illustrates a first user interacting with a computing device 102 a, anda second user interacting with a computing device 102 b. The inter-usercommunication system 100 can include a network 104, such as a globalnetwork, wide area network or local network, that supports datatransmission. The inter-user communication system 100 also includes amessage server B 106 and a message server A 108. As an example of theoperation of the inter-user communication system 100, the second usercan interact with the computing device 102 b to prepare a message 110that is to be sent to the first user, namely, to the computing device102 a being used by the first user. In doing so, the message server Areceives the message 110 can delivers it to the message server B via thenetwork 104. At the message server B, the message 110 can be processedby a throttle service module 112. The throttle service module 112 candetermine whether the message 110 is to be presented to the first user(e.g., via the computing device 102 a) or “throttled” (e.g., so as todefer such delivery). In general, the message 110 can be delivered tothe computing device 102 a via link 114 if the throttle service module112 determines that a “throttle” is not being imposed on the message110. On the other hand, if the throttle service module 112 determinesthat a “throttle” is being imposed on the message 110 then the deliveryof the message 110 to the computing device 102 a is deferred accordingto the throttle characteristics, and a throttle message 120 can be sentto the message server A and/or computing device 102 b to advise that themessage 110 (and/or the second user) is being “throttled.” The nature ofthe throttling and its institution are described in greater detailbelow. Also, it should be understood that the message server A mayreside on the computing device 102 b or as a cloud-based ornetwork-based resource, and that the message server B may reside on thecomputing device 102 a or as a cloud-based or network-based resource.The message servers A and B can also be provided as a single messageserver.

FIG. 2 is a flow diagram of a throttle process 200 according to oneembodiment. The throttle process 200 can, for example, be performed by acomputing device. The computing device typically supports usercommunications over one or more networks in a wired and/or wirelessmanner. The user communications can be voice/video calls or messages.Examples of messages include email messages or text messages (i.e.,instant messages, chat messages).

The throttle process 200 can begin with a decision 202 that determineswhether a message has been received. In one implementation, the message,if received, is from another user that has initiated the message using aremote computing device that is able to communicate over one morenetworks to the computing device operating the throttle process 200. Inanother implementation, the message, if received, is from a user of thecomputing device.

When the decision 202 determines that a message has not been received,the throttle process 200 can await the receipt of an incoming message.On the other hand, when the decision 202 determines that a message hasbeen received, a decision 206 can determine whether an active throttleexists for the user associated with the incoming chat message. When thedecision 206 determines that there is an active throttle for the userassociated with the incoming message, a responsive action can bedetermined 208 based on the active throttle. Here, the throttle process200 can support one or more responsive actions to an active throttle. Inaddition, there can be one or more different types of available activethrottles that can be activated or implemented for a particular user.After the responsive action has been determined 208, the responsiveaction can be implemented 210. There are various different responsiveactions that can be implemented 210 to provide the throttling beingimposed on the messages associated with the particular user. Followingthe block 210, the throttle process 200 can end. In addition, when thedecision 206 determines that an active throttle is not presentlyassociated with the user of the incoming message, the throttle process200 can end.

The throttle process 200 is, for example, implemented on a computingdevice associated with the recipient of an incoming chat message.However, in an alternative or complementary embodiment, a throttleprocess (same or similar to the throttle process 200) could beimplemented on a computing device associated with a sender of a message.In such case, an active throttle could have a responsive action thatprevents, defers, alters or delays sending of an outgoing message.Further, in another alternative or complementary embodiment, a throttleprocess (same or similar to the throttle process 200) could beimplemented on a computing device of a central server system, which canbe remote from a computing device used by sender or receiver.

The throttle process 200 generally refers to messages. However, itshould be understood that more generally the throttle process 200 can beimplemented for electronic messages, such as email, chat, voicemail,VoIP, etc. The throttle process 200 is particularly well suited for text(e.g., chat) messages.

FIG. 3 is a flow diagram of a throttle activation process 300 accordingto one embodiment. The throttle activation process 300 can beimplemented on a computing device. The computing device typicallysupports user communications over one or more networks in a wired and/orwireless manner. The user communications can be voice/video calls ormessages, email messages, or text messages (i.e., instant messages, chatmessages).

The throttle activation process 300 can begin with a decision 302 thatdetermines whether a throttle is to be activated. When the decision 302determines that a throttle is not to be activated, the throttleactivation process 300 awaits the need to activate a throttle. On theother hand, when the decision 302 determines that a throttle is to beactivated, throttle options can be presented 304. For example, thethrottle options that are available to be activated can be presented 304to a user of the computing device, such as by displaying the throttleoptions on a display screen of the computing device. As mentioned above,the throttle options can be recommendations by the system, or can beprovided from the user's custom throttles, or hybrid throttles thatinclude messages/notifications that are user crafted or user modified.

In some embodiments, the throttles options can be implemented inresponse to voice commands. For instance, if the user listens to avoicemail, at the end of the voicemail the user can say “Applythrottle,” and the system can provide voice read options for the user toselect and apply. Accordingly, it should be understood that any input ofdata, selection, setting, preference, and interaction can be via voice,or combinations of voice and/or user input (e.g., text, selection boxes,touch screen inputs, gestures, etc.).

Next, a decision 306 can determine whether a throttle option has beenselected. When the decision 306 determines that a throttle option hasbeen selected, a user identifier can be obtained 308. The useridentifier being obtained 308 is the user identifier that is associatedwith a user for which the throttle option is to be imposed. That is, thethrottle to be activated is a throttle that is to be placed on the useridentified by the user identifier. Thereafter, the selected throttleoption can be associated 310 with the user identifier. For example, theselected throttle option can be stored in a database 511 (e.g., see FIG.5A) in association with the user identifier, which stores an indicationthat the type of throttle specified by the selected throttle option isto be imposed on the user associated with the user identifier. In oneembodiment, the user identifier is identified using metadata associatedwith the message. For instance, the message may not identify a name ofthe sender, but may identify a phone number. In some embodiments, opendatabases accessible over the Internet may be accessed to obtainadditional identifying data regarding who the user is, where the messageoriginated, or the like. The user identifier can also simply be a phonenumber, chat ID, a name, or combinations thereof.

Furthermore, the user identifier may be stored in a database that isseparate from a database that defines the throttle to be applied oroptions of throttles that can be applied. In some embodiments, one ormore servers can be implemented to provide the association between theuser identifier and the throttle to be applied or throttles recommended(e.g., based on actions of the sender and parameters, conditions,settings or rules set by the recipient). In some embodiments, theselected throttle set for a sender having the user identifier can beprocessed and applied locally at the user's device. For example, themessage may be received by the recipient's device, but is hidden to therecipient until the throttle logic determines that presentation (e.g.,surfacing) should occur.

In such configurations, some processing can be performed on one or moreremote servers connected to the Internet and some of the processing isperformed locally by the device of the recipient, e.g., for implementingthe throttle actions. As noted, these processes may include, forexample, to determine user identifiers, identify throttles to apply,suggest throttles, modify throttles, takes the actions of the throttles,send notifications to the sender notifying of the applied throttle, savea history of applied actions based on set throttles, etc. Still further,in some configurations, throttles set for particular senders can berecommended for other senders that have similar sending or interactionprofiles, e.g., number of messages, frequency of messages, length ofmessages, time of day sent, and/or type of content expressed in themessages. Following the block 310, the throttle activation process 300can end.

On the other hand, when the decision 306 determines that a throttleoption has not been selected, a decision 312 can determine whether thethrottle activation process 300 is to be exited. If the decision 312determines that the throttle activation process 300 is not to be exited,the throttle activation process 300 returns to repeat the decision 306and subsequent blocks. However, if the decision 312 determines that thethrottle activation process 300 is to be exited, then the throttleactivation process 300 can end.

Another aspect of one or more embodiments of the invention pertains tosummarizing of user communications. The summarizing can serve tocondense or replace prior user communications. The summarizing can serveto provide more efficient communications when prior user communicationsare not able to be read in real-time, or are sent during a blockingperiod as set by a throttle.

It should be understood that the summarizing features are alsoapplicable to voicemail messages, not just original text-type messages.In the case of voicemail messages, the messages can be converted totext, and if several messages repeat the same content, a new voicemailcan be created which summarizes the pertinent content. Optionally, ifthe user wishes to listen to the original messages, an option can beprovided to allow navigation to listen to such messages.

FIGS. 4A and 4B are flow diagrams of a summary message process 400according to one embodiment. The summary message process 400 can beimplemented on a computing device. The computing device typicallysupports electronic user communications over one or more networks in awired and/or wireless manner. As noted above, the user communicationscan be voice/video messages, email messages, or text messages (i.e.,instant messages, chat messages). The summary message process 400 isdescribed further below with regard to text messages, as an exemplarytype of electronic message.

The summary message process 400 can begin with a decision 402 thatdetermines whether a text message has been received. When the decision402 determines that a text message has not yet been received, thesummary message process 400 can await receipt of a text message. Oncethe decision 402 determines that a text message has been received, adecision 404 can determine whether the text message has been timelyread. That is, even though a text message has been received by thecomputing device, the user may not interact with the computing deviceuntil sometime later to actually view the text message. In some cases,the user (recipient) might never actually view the text message. Whenthe decision 404 determines that the text message has been timely read,then the summary message process 400 can promptly end without needing toprovide a summary message (at least, as to that text message).

On the other hand, when the decision 404 determines that the textmessage has not been timely read, a counter of unread text messages fora particular sender user can be increased 406. The counter serves as anindication of the degree to which unread text messages from theparticular sender user have been received but have not been read by therecipient user. A decision 408 can then determine whether the count(provided by the counter) is greater than a threshold. The threshold istypically a predetermined threshold that identifies a number beyondwhich a summary message is deemed appropriate. When the decision 408determines that the count is not greater than the threshold, then thetext message can be presented 410 to the recipient. In this case, thenumber of unread text messages for the particular sender user has notexceeded the threshold, and, as a result, a summary message is notprovided, but the text message is made available to the recipient,typically in a normal fashion. Following the block 410, the summarymessage process 400 can end without having produced a summary message asto at least a text message.

Alternatively, when the decision 408 determines that the count doesexceed the threshold, then additional processing can be performed toproduce a summary message for the recipient. In particular, theadditional processing can include a decision 412 that determines whethera summary feature is enabled. Here, in one embodiment, the computingdevice receiving the text message can be configured to enable or disablethe summary feature. When the summary feature is enabled, a summarymessage can be produced and made available to the recipient atappropriate times. When the feature is active, the an option can beprovided to allow the user access to the original messages if desired.This may be useful in case the summary does not include certain detailsthat are still needed. In some cases, if the original messages are notaccessed for a pre-determined period of time (e.g., 3 months), theoriginal messages may be erased and removed from storage.

Still further, in one embodiment, the summary function can automaticallybe set based on throttle processing. For instance, if the sender hassent seven (7) short text messages over a period of 2 minutes, thethrottle may prevent sending the text messages one at a time. Instead,the seven (7) short text messages are compacted into one text message.In this example, the processing may also automatically reply to thesender asking that text messages be limited or be written in a moreconcise. By providing the notification messages to the sender of thepreferences of the recipient, it is more likely that the recipient willreply timely, and/or will not be annoyed. Furthermore, the time at whichthe summarized message is delivered to the recipient may be based on thethrottle applied to the sender by the recipient.

As several examples of summarizing messages, see the following threetexts: (a) “hey, U there?” (b) “?” (c) “dude, pls reply.” Here, a logicor reasoning engine can piece together the words and attempt to makecontextual sense of each text individually, and collectively in order.From (a), the system may determine that the sender is asking if therecipient is available. From (b) the system may determine that thesender is repeating a question. From (c) the system may determine thatthe sender wants a reply. Contextually analyzing (a)-(c) can yield asummary of “If you are available, I need your reply.” In still otherembodiments, the summarizing may simply combine the three text messagesinto one, like: “hey, U there? ?, dude, pls reply” In yet anotherembodiment, the summarizing may blend the three messages and add dataknown to the system, such as user names, such as: “Hey Bill, Are youavailable? Please reply.” In other implementations, the methods ofsummarizing may be hybrids of those described above.

When the summary feature is not enabled, summary messages are notpresented and thus the messages are simply made available to the user ina normal fashion. In one implementation, when the summary feature isenabled, then any pending unread messages from the particular senderuser can be compacted 414 into a summary message. Then, the summarymessage can be presented 416 to the recipient. The recipient may, atthat time, review the summary message or the user may review the summarymessage at a later point in time. Following the block 416, the summarymessage process 400 can end. Additionally, when the decision 412determines that the summary feature is not enabled (i.e., whendisabled), the summary message process 400 can also end without havingproduced a summary message.

A summary message can be generated or produced in any of a number ofdifferent ways.

One way a summary message can be generated is by automatic processing inwhich a set of prior unread messages from a given sender user can becompacted. For example, like messages can be compressed throughelimination of substantially similar messages. As another example,messages with little or no meaningful comment can be eliminated.

Another way a summary message can be generated is by furthercommunication with the sender user. As one example, the system can querythe sender user to provide a summary, approve a summary, or influence asummary. In one particular example, the system can examine the priorunread messages from a given sender user and generate a proposed summarymessage, which can then be sent via text messaging, to the sender userfor approval. In another particular example, the system can retrieve orretract the prior unread messages from a given sender user and ask therecipient user to return a desired summary message.

Still another way a summary message can be generated is a defaultmessage. As one example, the system can replace the prior unread messagefrom a particular sender user with a default message. The defaultmessage can state that message(s) were received but were retracted sincenot read or responded to. As one example, the default message mightstate (in place of the prior unread messages) that “Sorry, you missed myx messages send between 5:10 pm and 7:21 pm,” or “Sorry, you missed ymessages sent by Bob during your 2 pm meeting.”

In one embodiment, the summarizing function can implement contextualdictionaries, local dialect dictionaries, text slang dictionaries, andreasoning engines to make decisions on possible re-wording orre-statement of phrases.

Another benefit of summarizing messages is reduction of processing powerby servers and devices to process inefficient messages that may not becomplete thoughts or make sense if sent individually. The reduction inprocessing can, in some implementations, provide for substantialreductions in power utilization, storage access and transmission, etc.For example, data centers that store messages, process messages and sendmessages can reduce their processing bandwidth spent on small messagesby throttling users that send repeated messages. In the data center, theprocessing of a message, even when the message is small, requiresutilization of storage, processors to access storage, and databaseaccesses so that the messages can be associated with senders andreceivers. By throttling and/or summarizing, significant savings in datacenter processing can be achieved.

In another embodiment, messages exchanged between users can be monitoredfor lifetime (e.g., message lifetime). For example, a recipient candefine a lifetime that defines how long the message will be saved beforebeing deleted. When a message is deleted, the message will be deleted inthe local device as well as the sending server, to eliminate a record ofthe message or conversation. In some embodiments, a throttle can includea condition for lifetime of a message for communication with arecipient. For example, the recipient can tag certain senders as sendersfor which communications should not be saved and should be deleted fromthe sender's records and storage, from the communicating network entity(i.e., phone company or communication provider) and from the recipient'sdevices and records. In one embodiment, the communicating entity canstill record usage record without date and time to allow billing, butspecific metadata regarding calls made at times, dates and receivingparty are removed from storage and history.

To implement a lifetime for a conversation or message, in oneembodiment, the recipient can set a lifetime that requests the sender toagree to a lifetime for the message or messages, which causes thesender's devices and communication services to adhere to the setting. Atthe same time, if the sender agrees to the lifetime, the recipient'sdevice and services will also implement the lifetime. Once thisagreement is set between the communicating parties, the parties cancommunicate using messages that will be expunged from all records afterthe lifetime expires. The lifetime can be, for instance, within apredetermined time of being received, whether read or not.Alternatively, the lifetime can be, for instance, within a predeterminedperiod of time after being read by the recipient.

In particular embodiments, the lifetime is pre-assigned to particularrecipients. If the recipients have previously agreed to the lifetime,i.e., life of message limits, subsequent communications between theusers will also adhere to the lifetime. It should be understood that thelifetime can also apply to electronic messages, including voicemailmessages, video chats, voice chats, text chats and email communications.

In one embodiment, email communications that adhere to a lifetime canimplement an intermediary server that process the email messages betweena device of the sender and a device of the recipient. For example, if alifetime has been assigned for email communications, when an emailarrives in an inbox, selection of the email can launch a window oriframe that allows reading of the email as well as composing of aresponse to the email. The email, in this example, is not actuallydelivered to the recipient's inbox, but is actually just a link to anonline email client that manages the communications between the partiesthat agreed to the lifetime. In this example, the remotely hosted emailclient can hold the email, email string, email conversation, etc., for alimited period of time as set by the lifetime.

The limited period of time can be, for example, 30 minutes, 1 hour, 2hours, 1 day, 2 days, one week, one month, etc. In some examples, eitheruser can decide at any time to delete permanently the email orconversation of emails. In this manner, the emails are not saved in theclient or the server. Further, the lifetime can be dynamically set basedon identity of the sender of an email or on identity of the recipient ofan email.

In further embodiments, depending on sensitivity of content discussed, alifetime can be automatically applied. For example, if the content of anemail appears to use sensitive wording or language, a lifetime can besuggested to both the sender and the recipient to agree on a lifetime.In some embodiments, a business can set rules for applying lifetime,depending on the sensitivity of the communications or the personsinvolved in the communications.

FIG. 5A illustrates a system diagram of an email server 502 that is incommunication with a client device 506 over a network 104. The emailserver 502 may be a hosted server that manages email messages forvarious accounts, such as for the user of client device 506. In oneexample, the email server 502 may be a locally hosted server managed byan organization, e.g., a company for its employees. In another example,the email server 502 may be an internet hosted server that providesemail services for individuals or group of individuals. In oneembodiment, the email server 502 has access to storage, such as emailstorage 510 (e.g., used to store messages for those users of itsprovided services). In still another example, the email server 502 maybe part of a set of servers or systems managed by an Internet company,e.g., which provide free, partially paid for, or sponsored emailservices. In one example, the email server 502 may be integrated with anemail service 520 for processing emails, e.g., sending, replying,managing email threads, forwarding, saving, drafts, etc. In oneembodiment, the email service 520 may be in communication with throttleservice module 522. Throttle service module 522 may include logic andprogram instructions for managing the throttle operations describedherein. The throttle service module 522 may be a plug-in or may beintegrated into the email service 520 logic.

As shown, the client device may have its own email client 524, which maybe an application (app). In another embodiment, the email client 524 maybe processed entirely on the email server 502. In still otherembodiments, the email client 524 provides the user interfaces forallowing the client to use email functions. In the embodiment shown, thethrottle service module 526 may be executed on the client device 506. Inone embodiment, the throttle service module 526 may just be executed onthe email server 502. In one example, the client device 506 may beprovide with a thin client for executing the email client 524 and forallowing users to interface with throttle setting controls 516. At theclient device 506, the user can decide how to apply throttles todifferent people that may be communicating with the user. These settingsare then communicated to the email server 502, which can associate thesettings to the user account 508, throttle settings 512 and thresholdsettings 514. In one embodiment, the user accounts can be interfacedwith a database 511, which may be used to save throttle options ofusers.

FIG. 5B illustrates an example of a text processing server 550, whichprocesses text service 552. Similar to the email service, the textservice 552 is in communication with the throttle service module 1022.Text storage 554 is used to store texts managed by the text service 552.In this example, the client device 506 may also include a text client556 that is provided with access to throttle service module 526.

FIG. 6 is an example system diagram of the throttle service module 522shown in FIG. 5A. The throttle service module 522 includes a recipientprocessing module 586 and a sender processing module 584. In operation,a sender may send a message to the recipient, who may be using a systemfor throttling messages (e.g., email, text, voice, social, tweets,social, etc.). A message sent by sender is received by the senderprocessing module 584, which is in communication with a throttle lookupmodule 592. Throttle lookup module 592 is configured to interface withthrottle management logic, which provides communication to user accounts508, the throttle settings 512, the general settings 582, the thresholdsettings 514, and a summarize setting 582. FIGS. 9 and 10 provideexamples of a summarize setting, such as the summarize setting 582, whenexecuted for messages of a user, in accordance with predefined settings.

Based on the throttle settings for the sender and/or the messagereceived, a threshold processing module 590 will process the logicassociated with determining if the message should be sent to therecipient, denied, queued, or some other action is to be taken. In oneexample, signal 596 is sent from threshold processing module 590 to thesender processing module 584, indicating that the message shouldcommunicated 598 to the throttle message queue 589 for processing. Theprocessing while the message is at the throttle message queue 589 caninclude deleting, saving a metadata, and/or saving the message tostorage 588. At some later point, the message may be sent 599 to therecipient processing module 586 for processing, e.g., such as forwardingto the recipient. The forwarding would be done at a later time, e.g.,after a set period of time has lapsed, after a set number of messagesare accumulated, etc. In another example, the threshold processingmodule 590 may send a message to the recipient processing module 586 tosimply send the message direction to the recipient without delay, e.g.,as not throttle setting was detected or determined to be needed. Asnoted above, the processing logic executed by the aforementioned modulescan be processed in software, in firmware, in program instructionsexecuted with larger systems or subsystems. In some embodiments, thethrottle can also act to capture spam with more fidelity, identifysenders of the spam, collect spam messages for showing proof of sender,and automatically throttle certain types of messages, e.g., usinglearning algorithms.

FIG. 7 illustrates an example flow diagram, showing processing by anumber of systems. A client device is shown in communication with amessage server (e.g., message server 1102) and a throttle service module(e.g., throttle service module 1022). In this illustration, the throttleservice module can cooperate to process a received message 1103. Themessage 603 is received at a processing node of the message server. Atthis point, the message and/or metadata of the message is sent to aprocessing node of the throttle service module. In this example, thethrottle service module may check for throttle settings for therecipient in operation 604. In operation 606, the throttle servicemodule 1022 will check for thresholds. Once the thresholds, if any arefound and/or instituted, the throttle service module 1022 will apply athrottle action 608. For example, if it is determined that a value(i.e., message number, message time, message frequency, and/orcombinations thereof) is less than threshold, then the message 603 issent to the client device for presentation. If it is determined that thevalue is more than the threshold, then processing proceeds to themessage server node where the message is saved or queued for laterdelivery (or deleted). In this example, the message is stored 618, andthe sender is optionally provided with a notification 616, with amessage indicating why the message is throttled (i.e., not beingdelivered or delayed). In one embodiment, the message is scheduled forlater delivery 614 by throttle service module 522. As noted above, themessage processing can be for email, text, voicemail, social messages,twitter messages, etc.

FIG. 8 illustrates an example of a device 1050 receiving several textmessages from a sender. As shown, the messages may have some contextthat can be determined, such as the message being urgent. The rest ofthe message may have a general message theme, that is distributed amongvarious short messages. In such as case, the user may select a summaryfeature or a device may institute the summary feature based onconditions, status, rules, etc., which may act to generate a summary1054. The system may also deduce that the context is “urgent” andprovide a header 652 or some indicator to convey urgency, e.g., such ascolor, flashing, font size, etc. Although the messages can be condensedto the summary 1054 in the summarize mode, the user may also be providedwith the option to see the full texts 656.

FIG. 9 provides an example of messages being summarized and messagesbeing throttled. An example is also provided wherein a user can setthrottle settings. The server throttle service module 522 can save thesettings made by the various client devices that subscribe to theservice. Further shown is a sender “Steve” getting a notificationmessage, e.g., because his message or some messages were throttled(i.e., not delivered or will be delivered later).

For example, user Bob may be receiving multiple short messages fromSteve, and these messages may be accumulating. These messages may besmall or cryptic or use slang, which could make them difficult tounderstand without spending too much time scrolling up to obtain enoughcontext to understand what the message is about.

In one example implementation, the summary feature is configured toremove unnecessary messages, identify context based on two or more ofthe messages, and construct a summary of the messages. In this simpleexample, the messages are summarized as “Bob, lunch? Please reply.” Ifthe user wishes to see the full extent of the messages that resulted inthe summary, the user can be provided with the option to expand themessages back out.

If the user Bob wishes to throttle Steve, e.g., because he is gettingtoo many messages from Steve, the user can select to throttle Steve'smessages. In one configuration, user Bob may custom configure thesettings for Steve, e.g., by setting throttle for Steve. In one example,the setting can be to limit the number of messages that can be receivedfrom Steve, since the last read message or over a predefined period oftime. Any number can be used, but in this example, the setting was setto 2 messages. In another or additional implementation, the user canalso set a notification message custom to Steve. For example, themessage can be set to “Steve, please reduce the number of messages beingsent, I will get back to you soon,” or any other custom or user definedmemo. As shown, once the throttle is set to two (2) messages, Bob willonly receive two messages from Steve (in real time), and Steve will benotified of the same. This way, if Steve needs to send somethingimportant, he will limit his frequency or make more concise textmessages, or take some other action.

FIG. 10 is a block diagram illustrating an example of a summary featurebeing applicable to tweets received over a period of time or forsummarizing a subset identified by the user.

FIG. 11 illustrates an example of a sender processing module 700 (e.g.,sender processing module 1086) receiving data or pulling data fromvarious sources so that throttling can be applied. In this example, thesender processing module 700 is in communication with user text numbers710, user email 712, user contacts 708 (local and/or on online useremail/text provider systems), user social network contacts 706 viasocial networks 704. The sender processing module 700 can be configuredinterface with recommendation logic 702 for receiving recommendations asto which senders to tag (or mark) for throttling or which senders shouldbe provided different messages. Recommendation logic 702 can alsodetermine a best throttle among many possible throttles based on learnedexperiences from many users over time. The sender processing module 700further message tagging of sender or message logic 716. The messagesused for notifications 714 will also be used so that when arecommendation to tag a sender for future throttling is made, themessage notification is suited for the sender. Thus, it should beunderstood that in one embodiment different senders can be givendifferent throttling settings and different notification messages. Inother embodiments, the system may apply default throttling settings andnotification messages based on the activity of the sender with respectto the recipient.

FIG. 12 shows an exemplary computer system. One or more of the exemplarycomputer systems are suitable for use with at least one embodiment ofthe invention. The computer system 1200 includes a display/monitor 1202having a single or multi-screen display, touch screen, (or multipledisplays), a cabinet 1206, an input device 1208 (e.g., keyboard), inputdevice 1210 (e.g., a mouse, input surface, buttons, speakers,controller, etc. The cabinet 1206 houses the computer system. Thecabinet 1206 can, for example, be the casing of a smart phone, a laptop,a tablet, a desktop, etc. The cabinet 1206 can also housedrive(s)/storage 1212 (e.g., such as a CD-ROM, system memory, and a massstorage device (e.g., hard drive or solid-state drive), etc.), which maybe utilized to store retrievable software programs incorporatingcomputer code that implements an embodiment of the invention, data foruse with embodiment(s) of the invention, and the like. Other exemplarycomputer readable medium may include computer readable digital video,audio, including floppy disk, tape, flash memory, system memory, andhard drive may be utilized. The cabinet 1206 may also house a processor1211, which is used to process operations for carrying out one or moreoperations described herein. The processor can also enable communicationof data with a network 104. The network may be, for example, a localarea network, a wide area network, or the Internet.

Additionally, U.S. patent application Ser. No. 14/985,124, entitled“NETWORK-BASED MESSAGING SYSTEM WITH DATABASE MANAGEMENT FOR COMPUTERBASED INTER-USER COMMUNICATION,” and filed on Dec. 30, 2015, and whichis hereby incorporated herein by reference.

The various aspects, features, embodiments or implementations of theinvention described above can be used alone or in various combinations.

Embodiments of the invention can, for example, be implemented bysoftware, hardware, or a combination of hardware and software.Embodiments of the invention can also be embodied as computer readablecode on a computer readable medium. The computer readable medium is anydata storage device that can store data which can thereafter be read bya computer system. Examples of the computer readable medium generallyinclude read-only memory and random-access memory. More specificexamples of computer readable medium are tangible and include Flashmemory, EEPROM memory, memory card, CD-ROM, DVD, hard drive, magnetictape, and optical data storage device. The computer readable medium canalso be distributed over network-coupled computer systems so that thecomputer readable code is stored and executed in a distributed fashion.

Numerous specific details are set forth in order to provide a thoroughunderstanding of the present invention. However, it will become obviousto those skilled in the art that the invention may be practiced withoutthese specific details. The description and representation herein arethe common meanings used by those experienced or skilled in the art tomost effectively convey the substance of their work to others skilled inthe art. In other instances, well-known methods, procedures, components,and circuitry have not been described in detail to avoid unnecessarilyobscuring aspects of the present invention.

In the foregoing description, reference to “one embodiment” or “anembodiment” means that a particular feature, structure, orcharacteristic described in connection with the embodiment can beincluded in at least one embodiment of the invention. The appearances ofthe phrase “in one embodiment” in various places in the specificationare not necessarily all referring to the same embodiment, nor areseparate or alternative embodiments mutually exclusive of otherembodiments. Further, the order of blocks in process flowcharts ordiagrams representing one or more embodiments of the invention do notinherently indicate any particular order nor imply any limitations inthe invention.

The many features and advantages of the invention are apparent from thewritten description. Further, since numerous modifications and changeswill readily occur to those skilled in the art, the invention should notbe limited to the exact construction and operation as illustrated anddescribed. Hence, all suitable modifications and equivalents may beresorted to as falling within the scope of the invention.

What is claimed is:
 1. A non-transitory computer readable mediumincluding at least computer program code for limiting text messages,said computer readable medium comprising: computer program code forreceiving an electronic message from a given sender over a wirelessnetwork, the electronic message being for and directed to a recipientuser; computer program code for accessing throttle setting dataapplicable to the electronic message, the throttle setting data beingset by or for the recipient user and applicable to at least electronicmessages from the given sender; computer program code for determiningwhether the electronic message from the given sender should be deferredbased on the throttle setting data applicable to the electronic message;and computer program code for deferring delivery to or presentation by arecipient user electronic device associated with the recipient user ifthe computer program code for determining determines that the electronicmessage from the given sender should be deferred.
 2. A non-transitorycomputer readable medium including at least computer program code forlimiting text messages, said computer readable medium comprising:computer program code for receiving an electronic message from a givensender, the electronic message being for and directed to a recipientuser; computer program code for determining whether sending or deliveryof the electronic message should be deferred based on throttle dataassociated with the given sender, the throttle data being set by or forthe recipient user and applicable to at least electronic messages fromthe given sender; and computer program code for deferring sending ordelivery to a recipient user electronic device if the determiningdetermines that the electronic message should be deferred, wherein thecomputer program code for determining determines that sending ordelivery of the electronic message to the recipient user electronicdevice should be deferred based on the throttle data associated with thegiven sender, wherein the throttle data causes deferral based on aquantity of messages received from the given sender to the recipientuser.
 3. A non-transitory computer readable medium including at leastcomputer program code for limiting text messages, said computer readablemedium comprising: computer program code for receiving an electronicmessage from a given sender, the electronic message being for anddirected to a recipient user; computer program code for determiningwhether sending or delivery of the electronic message should be deferredbased on throttle data associated with the given sender, the throttledata being set by or for the recipient user and applicable to at leastelectronic messages from the given sender; and computer program code fordeferring sending or delivery to a recipient user electronic device ifthe determining determines that the electronic message should bedeferred, wherein the computer program code for determining determinesthat sending or delivery of the electronic message to the recipient userelectronic device should be deferred based on the throttle dataassociated with the given sender, wherein the throttle data causesdeferral based on content or context of messages received from the givensender to the recipient user.